﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.DataEntity;

    [ServiceContract(Namespace="WMS6.Services", SessionMode=SessionMode.Allowed)]
    public interface IRFOutboundService
    {
        [OperationContract]
        string BatchPickingByWave(string waveID, string lpnID, PubParasInfo pubParasInfo);
        [OperationContract]
        void BatchShippingByWave(string waveID, PubParasInfo pubParasInfo);
        [OperationContract]
        string GeneratePickingByLpn(string orderID, string lpnID, PubParasInfo pubParasInfo);
        [OperationContract]
        string GeneratePickingByPickDetail(RFPickDetailInfo rfPickDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract]
        string GeneratePickingByPickDetails(List<RFPickDetailInfo> rfPickDetailInfos, PubParasInfo pubParasInfo);
        [OperationContract]
        string GenerateVanningDetailByPickDetails(string orderID, string orderType, string containerID, List<RFPickDetailInfo> rfPickDetailInfos, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllAvailableSalesOrderPickInfo(string orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllAvailableSalesOrderShipInfo(string orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<LoadDetailInfo> GetLoadDetailListByID(string loadID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<RFPickDetailInfo> GetLoadDetailListInfoByOrderIDAndLpn(string orderID, string lpnID, string loc, string checkPalletPick, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetLoadOrdersShippingInfo(string loadID, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetOrdersByPickAllocateInfo(string orderID, string where, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetPackageShippingInfo(string orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetPackageWaveInfo(string orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        RFPickDetailInfo GetPickDetailInfoOrderByLoc(List<string> orderIDS, RFPickDetailInfo rfPickInfo, PubParasInfo pubParasInfo);
        [OperationContract]
        List<RFPickDetailInfo> GetPickDetailListInfoByIDS(List<string> orderIDS, string selectAll, PubParasInfo pubParasInfo);
        [OperationContract]
        List<PickDetailInfo> GetPickDetailListInfoByLpn(string lpnID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<RFPickDetailInfo> GetPickDetailListInfoByOrderIDAndLpn(List<string> orderIDS, string lpnID, string loc, string checkPalletPick, PubParasInfo pubParasInfo);
        [OperationContract]
        List<RFPickDetailInfo> GetPickDetailListInfoByPack(List<string> orderIDS, PubParasInfo pubParasInfo);
        [OperationContract]
        string GetRotationRuleByPickInfo(string lpnID, string waveID, string orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetWaveByQueryListPickInfo(string waveID, string where, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetWaveByQueryListShippingInfo(string waveID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<WaveDetailInfo> GetWaveDetailListByID(string waveID, PubParasInfo pubParasInfo);
        [OperationContract]
        string SaveLoadDetailByPickDetails(string loadID, List<RFPickDetailInfo> rfPickDetailInfos, PubParasInfo pubParasInfo);
        [OperationContract]
        string ShippedByLoadID(string loadID, PubParasInfo pubParasInfo);
        [OperationContract]
        string ShippedByLpnID(string lpnID, PubParasInfo pubParasInfo);
        [OperationContract]
        string ShippedByOrderID(List<string> orderID, PubParasInfo pubParasInfo);
        [OperationContract]
        string UpdatePickSeqNoByLoc(List<string> orderIDS, string loc, PubParasInfo pubParasInfo);
    }
}

